package com.monlyu.bean;

import java.util.Collections;
import java.util.List;

import com.monlyu.util.ActionUtil;

/*******************************************************************************
 * 
 * <b>功能描述☞</b>分页标签的一页<br>
 * 
 * <b>开发公司☞</b>重庆唯尼科技有限公司<br>
 * <b>版权☞</b>本文件归重庆唯尼科技有限公司所有<br>
 * <b>项目名☞</b>monlyu<br>
 * <b>文件路径☞</b>com.monlyu.bean.Page.java<br>
 * <b>开发日期☞</b>2010-1-12 <br>
 * 
 * @author monlyu
 * @since JDK 5
 * @version : 1.0.5
 * 
 ******************************************************************************/
public class Pages<T> {
	/** 总条数 */
	private int totalCount;
	/** 每页显示的行数 */
	private int size = ActionUtil.PAGE_SIZE;
	/** 当前页 */
	private int current;
	/** 总页数 */
	private int pageCount;
	/** 当前数据库中的起始位置 */
	private int start;
	/** 所有的记录列表 */
	private List<T> items = Collections.emptyList();

	private String[] columnNames;

	public static final Pages EMPTY = new Pages(null, 10, 1);

	public String[] getColumnNames() {
		return columnNames;
	}

	public void setColumnNames(String[] columnNames) {
		this.columnNames = columnNames;
	}

	public List<T> getItems() {
		return items;
	}

	public void setItems(List<T> items) {
		this.items = items;
	}

	public List<T> list() {
		return getItems();
	}

	public Pages(List<T> items, int total, int curt) {
		setSize(ActionUtil.PAGE_SIZE);
		setTotalCount(total);
		setpcount(total);
		setItems(items);
		setCurrent(curt);
		setStart(0);
	}

	public int getSize() {
		return size;
	}

	public void setSize(int size) {
		this.size = size;
	}

	/** 获取当前页 */
	public int getCurrent() {
		return current;
	}

	public void setCurrent(int current) {
		this.current = current;
	}

	/** 总的页数 */
	public int getPageCount() {
		return pageCount;
	}

	// 设置总的大小
	public void setpcount(int allrecrod) {
		int bc = allrecrod / getSize();
		if (allrecrod % getSize() > 0) {
			bc++;
		}
		setPageCount(bc);
	}

	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}

	public int getStart() {
		return start;
	}

	public void setStart(int start) {
		this.start = start;
	}

	public int getTotalCount() {
		return totalCount;
	}

	public void setTotalCount(int totalCount) {
		if (totalCount > 0) {
			this.totalCount = totalCount;
		} else {
			this.totalCount = 0;
		}
	}

	/**
	 * 本页第一条记录在数据库中的序号
	 */
	public int firstIndex() {
		return size * current;
	}
}
